package model

import (
	"time"
)

// DictType 字典类型
type DictType struct {
	ID        uint       `gorm:"primaryKey" json:"id"`
	Name      string     `gorm:"size:100;not null;comment:字典名称" json:"name"`
	Type      string     `gorm:"size:100;not null;uniqueIndex;comment:字典类型" json:"type"`
	Status    int        `gorm:"default:1;comment:状态(1:正常,2:停用)" json:"status"`
	Remark    string     `gorm:"size:500;comment:备注" json:"remark"`
	CreatedAt time.Time  `json:"createdAt"`
	UpdatedAt time.Time  `json:"updatedAt"`
	DictData  []DictData `gorm:"foreignKey:DictTypeID" json:"dictData,omitempty"`
}

// DictData 字典数据
type DictData struct {
	ID         uint      `gorm:"primaryKey" json:"id"`
	DictTypeID uint      `gorm:"not null;comment:字典类型ID" json:"dictTypeId"`
	Label      string    `gorm:"size:100;not null;comment:字典标签" json:"label"`
	Value      string    `gorm:"size:100;not null;comment:字典键值" json:"value"`
	Sort       int       `gorm:"default:0;comment:排序" json:"sort"`
	Status     int       `gorm:"default:1;comment:状态(1:正常,2:停用)" json:"status"`
	Remark     string    `gorm:"size:500;comment:备注" json:"remark"`
	CreatedAt  time.Time `json:"createdAt"`
	UpdatedAt  time.Time `json:"updatedAt"`
	DictType   DictType  `gorm:"foreignKey:DictTypeID" json:"dictType,omitempty"`
}

// TableName 自定义表名
func (DictType) TableName() string {
	return "dict_types"
}

func (DictData) TableName() string {
	return "dict_data"
}
